// vite.config.js
import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'

export default defineConfig(({ mode }) => {
    const env = loadEnv(mode, process.cwd(), '')
    console.log('请求API:', env.VITE_API_BASE_URL)
    console.log('应用标识:', env.VITE_MICRO_TAG)

    return {
        base: env.VITE_APP_NODE_ENV === 'dev' ? '/' : '/micro-mes/',
        server: {
            port: 9001,
            headers: {
                'Access-Control-Allow-Origin': '*',
            }
        },
        build: {
            // 确保模板编译器包含在构建中
            target: 'esnext',
            minify: 'esbuild',
            // 确保不排除模板编译器
            // rollupOptions: {
            // 	external: [], // 确保不排除 vue 相关依赖
            // 	output: {
            // 		// 其他输出配置
            // 	}
            // }
        },
        plugins: [
            vue()
            /*vue({
				// 确保模板编译器相关配置正确
				template: {
					// 编译器选项
					compilerOptions: {
						// 确保在微前端环境中的兼容性
						isCustomElement: (tag) => false,
						whitespace: 'condense', // 或者 'preserve'
						comments: false // 生产环境移除注释
					},
					// 转换资源URL
					transformAssetUrls: {
						base: null,
						includeAbsolute: false,
					}
				},
				// 确保包含运行时模板编译
				include: [/\.vue$/, /\.md$/],
			})*/
        ],

        resolve: {
            alias: {
                // todo 必须使用包含模板编译器的vue版本!!!否则路由加载不出来(只能使用渲染函数不能使用字符串模版也就是组件)
                // 'vue': 'vue/dist/vue.esm-bundler.js',
                '@': resolve(__dirname, 'src'),
                // '@': fileURLToPath(new URL('./src', import.meta.url))
            }
        },

        // 重要：确保这些全局变量正确设置
        define: {
            // __VUE_OPTIONS_API__: true,      // 启用 Options API
            // __VUE_PROD_DEVTOOLS__: false,   // 生产环境禁用 devtools
            // __VUE_PROD_HYDRATION_MISMATCH_DETAILS__: false,
        }
    }
})
